<?php

class Vehiculos_model extends CI_Model {

    function __construct() {
        
    }

    public function getVehiculos() {
        $this->db->select('vehiculos.id, vehiculos.modelo, marcas.marca, precios.precio, vehiculos.foto1')
                ->from('vehiculos')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->order_by('vehiculos.id', 'asc');

        $query = $this->db->get();

        return $query->result();
    }

    public function getVehiculosById($id) {
        /* $this->db->select('*')
          ->from('vehiculos')
          ->where('id', $id); */
        $this->db->select('vehiculos.id, marcas.marca, 
            categorias.categoria, transmision.transmision, 
            combustibles.combustible, anno.anno, 
            cilindrada.cilindrada, color_exterior.color_exterior, 
            color_interior.color_interior, tipo.tipo,
            precios.precio, vehiculos.modelo, vehiculos.kilometraje, vehiculos.puertas,
            vehiculos.foto1,vehiculos.foto2, vehiculos.foto3, vehiculos.foto4, vehiculos.foto5, vehiculos.foto6, vehiculos.foto7, vehiculos.foto8, vehiculos.foto9, vehiculos.foto10')
                ->from('vehiculos')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('categorias', 'vehiculos.categoria = categorias.id')
                ->join('transmision', 'vehiculos.transmision = transmision.id')
                ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                ->join('anno', 'vehiculos.anno = anno.id')
                ->join('cilindrada', 'vehiculos.cilindrada = cilindrada.id')
                ->join('color_exterior', 'vehiculos.color_exterior = color_exterior.id')
                ->join('color_interior', 'vehiculos.color_interior = color_interior.id')
                ->join('tipo', 'vehiculos.tipo = tipo.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->where('vehiculos.id', $id);

        $query = $this->db->get();

        return $query->result();
    }

    public function getExtrasById($id) {
        /* $this->db->select('*')
          ->from('vehiculos')
          ->where('id', $id); */
        $this->db->select('extras.extra')
                ->from('extras')
                ->join('vehiculo_extras ', 'vehiculo_extras.extra_id = extras.id')
                ->where('vehiculo_extras.vehiculo_id', $id);

        $query = $this->db->get();

        return $query->result();
    }

    public function getMotosById($id) {
        /* $this->db->select('*')
          ->from('vehiculos')
          ->where('id', $id); */
        $this->db->select('*')
                ->from('vehiculos')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('categorias', 'vehiculos.categoria = categorias.id')
                ->join('transmision', 'vehiculos.transmision = transmision.id')
                ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                ->join('anno', 'vehiculos.anno = anno.id')
                ->join('cilindrada', 'vehiculos.cilindrada = cilindrada.id')
                ->join('color_exterior', 'vehiculos.color_exterior = color_exterior.id')
                ->join('tipo', 'vehiculos.tipo = tipo.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->where('vehiculos.id', $id);

        $query = $this->db->get();

        return $query->result();
    }

    function getNuevosVehiculos() {
        $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, anno.anno, marcas.marca, precios.precio, vehiculos.foto1')
                ->from('vehiculos')
                ->join('anno', 'vehiculos.anno = anno.id')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->join('categorias', 'vehiculos.categoria = categorias.id')
                ->where('vehiculos.nuevo = 1')
                ->order_by('vehiculos.id', 'desc')
                ->limit(6);


        $query = $this->db->get();

        return $query->result();
    }

    function getMarcas() {
        $this->db->distinct();
        $this->db->select('marcas.id, marcas.marca')
                ->from('marcas')
                ->join('vehiculos', 'marcas.id = vehiculos.marca')
                ->order_by('marca', 'asc');

        $query = $this->db->get();

        return $query->result();
    }

    function getCategorias() {
        $this->db->distinct();
        $this->db->select('categorias.id, categorias.categoria')
                ->from('categorias')
                ->join('vehiculos', 'categorias.id = vehiculos.categoria')
                ->order_by('categoria', 'asc');

        $query = $this->db->get();

        return $query->result();
    }

    function getCombustibles() {
        $this->db->distinct();
        $this->db->select('combustibles.id, combustibles.combustible')
                ->from('combustibles')
                ->join('vehiculos', 'combustibles.id = vehiculos.combustible')
                ->order_by('combustible', 'asc');

        $query = $this->db->get();

        return $query->result();
    }

    function getVehiculosWhere($marca, $categoria, $combustible) {

        if ($marca != '') {
            if ($categoria != '') {
                if ($combustible != '') {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('marca', $marca)
                      ->like('categoria', $categoria)
                      ->like('combustible', $combustible)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id AND marcas.id = "' . $marca . '"')
                            ->join('categorias', 'vehiculos.categoria = categorias.id AND categorias.id = "' . $categoria . '"')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id AND combustibles.id = "' . $combustible . '"')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                } else {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('marca', $marca)
                      ->like('categoria', $categoria)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id AND marcas.id = "' . $marca . '"')
                            ->join('categorias', 'vehiculos.categoria = categorias.id AND categorias.id = "' . $categoria . '"')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                }
            } else {
                if ($combustible != '') {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('marca', $marca)
                      ->like('combustible', $combustible)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id AND marcas.id = "' . $marca . '"')
                            ->join('categorias', 'vehiculos.categoria = categorias.id')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id AND combustibles.id = "' . $combustible . '"')
                            ->order_by('vehiculos.id', 'asc');
                } else {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('marca', $marca)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id AND marcas.id = "' . $marca . '"')
                            ->join('categorias', 'vehiculos.categoria = categorias.id')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                }
            }
        } else {
            if ($categoria != '') {
                if ($combustible != '') {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('categoria', $categoria)
                      ->like('combustible', $combustible)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id')
                            ->join('categorias', 'vehiculos.categoria = categorias.id AND categorias.id = "' . $categoria . '"')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id AND combustibles.id = "' . $combustible . '"')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                } else {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('categoria', $categoria)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id')
                            ->join('categorias', 'vehiculos.categoria = categorias.id AND categorias.id = "' . $categoria . '"')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                }
            } else {
                if ($combustible != '') {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->like('combustible', $combustible)
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id')
                            ->join('categorias', 'vehiculos.categoria = categorias.id')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id AND combustibles.id = "' . $combustible . '"')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                } else {
                    /* $this->db->select('*')
                      ->from('vehiculos')
                      ->order_by('id', 'asc'); */
                    $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, precios.precio, anno.anno, marcas.marca, categorias.categoria, vehiculos.foto1')
                            ->from('vehiculos')
                            ->join('anno', 'vehiculos.anno = anno.id')
                            ->join('marcas', 'vehiculos.marca = marcas.id')
                            ->join('categorias', 'vehiculos.categoria = categorias.id')
                            ->join('combustibles', 'vehiculos.combustible = combustibles.id')
                            ->join('precios', 'vehiculos.precio = precios.id')
                            ->order_by('vehiculos.id', 'asc');
                }
            }
        }

        $query = $this->db->get();

        /* foreach ($query->result_array() as $key => $value) {
          $array['id'] = $value['id'];
          $array['modelo'] = $value['modelo'];
          $array['marca'] = $value['marca'];
          $array['categoria'] = $value['categoria'];
          $array['combustible'] = $value['combustible'];
          $array['color_ojos'] = $value['color_ojos'];
          $array['color_pelo'] = $value['color_pelo'];
          $array['color_piel'] = $value['color_piel'];
          $array['foto1'] = $value['foto1'];
          $array['foto2'] = $value['foto2'];
          $array['foto3'] = $value['foto3'];
          $array['foto4'] = $value['foto4'];
          $array['foto5'] = $value['foto5'];
          $array['foto6'] = $value['foto6'];
          $array['foto7'] = $value['foto7'];
          $array['foto8'] = $value['foto8'];
          $array['foto9'] = $value['foto9'];
          $array['foto10'] = $value['foto10'];
          $results[] = $array;
          }
          print_r(json_encode($results)); */
        return $query->result();
    }

    public function countRecords() {
        $this->db->select('*')
                ->from('vehiculos');
        $query = $this->db->get();
        return $query->num_rows();
    }

    public function getAllVehiculos($limit, $start) {
        $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, anno.anno, marcas.marca, precios.precio, vehiculos.foto1')
                ->from('vehiculos')
                ->join('anno', 'vehiculos.anno = anno.id')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->join('categorias', 'vehiculos.categoria = categorias.id')
                ->order_by('vehiculos.id', 'asc')
                ->limit($limit, $start);

        $query = $this->db->get();

        return $query->result();
    }

    public function getModelosByCategoria($categoria) {
        $this->db->select('vehiculos.id, categorias.categoria, vehiculos.modelo, anno.anno, marcas.marca, precios.precio, vehiculos.foto1')
                ->from('vehiculos')
                ->join('anno', 'vehiculos.anno = anno.id')
                ->join('marcas', 'vehiculos.marca = marcas.id')
                ->join('precios', 'vehiculos.precio = precios.id')
                ->join('categorias', 'vehiculos.categoria = categorias.id')
                ->where('categorias.categoria', $categoria)
                //->order_by('vehiculos.id', 'RANDOM')
                ->limit(18);

        $query = $this->db->get();

        return $query->result();
    }

}